package net.bmwgroup.easyrule.demo.facts;

import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.jeasy.rules.api.Fact;

/**
 * The head unit data
 *
 * @param <T>
 */
@EqualsAndHashCode
@ToString
public class BaseDimension<T> extends Fact<T> {
    /**
     * The code to identify a head unit ability
     */
    private String abilityCode;

    /**
     * The name of a head unit ability
     */
    private String abilityName;

    /**
     * The description of a head unit ability
     */
    private String abilityDesc;

    /**
     * The data value of head unit ability
     */
    private T dataValue;

    public BaseDimension(String abilityCode, String abilityName, String abilityDesc, T dataValue) {
        super(abilityName, dataValue);
        this.abilityCode = abilityCode;
        this.abilityName = abilityName;
        this.abilityDesc = abilityDesc;
        this.dataValue = dataValue;
    }

    public String getAbilityCode() {
        return abilityCode;
    }

    public void setAbilityCode(String abilityCode) {
        this.abilityCode = abilityCode;
    }

    public String getAbilityName() {
        return abilityName;
    }

    public void setAbilityName(String abilityName) {
        this.abilityName = abilityName;
    }

    public String getAbilityDesc() {
        return abilityDesc;
    }

    public void setAbilityDesc(String abilityDesc) {
        this.abilityDesc = abilityDesc;
    }

    public T getDataValue() {
        return dataValue;
    }

    public void setDataValue(T dataValue) {
        this.dataValue = dataValue;
    }
}
